1. Field
Embodiments relate to the field of compilers.
2. Background
Human readable code or instructions are often turned into executable software through the use of a program called a compiler. The compiler takes the code and translates it into a machine-readable form that can be understood by a computing device. The code itself may be split into several components. In some programming languages, the code may be split into one or more definitional components, referred to as source files, and one or more declarational components, referred to as header files. Source files may reference header files to use their declarations. In particular, multiple source files may reference the same header file for its declarations. For each reference to a header file a compiler encounters, the compiler generally processes the header file in its entirety, even though it may have previously processed it. Depending on the number and length of the header files, a significant portion of compilation time may be attributed to reprocessing of header files.